View Javadoc

1   package uba.db.sql.language;
2   
3   import org.apache.commons.lang.builder.EqualsBuilder;
4   import org.apache.commons.lang.builder.HashCodeBuilder;
5   
6   /***
7    * Representa una columna que se mostrará en el resultado de un select.
8    * 
9    * @version $Revision: 1.6 $
10   */
11  public class DisplayOneColumn implements DisplayColumns {
12      private SingleValue expression;
13  
14      /***
15       * Crea una instancia que representa una columna a mostrar.
16       * 
17       * @param expression
18       *            la expresión a mostrar en la columna.s
19       */
20      public DisplayOneColumn(SingleValue expression) {
21          this.expression = expression;
22      }
23  
24      /***
25       * @see uba.db.sql.language.DisplayColumns#append(uba.db.sql.language.DisplayColumns)
26       */
27      public DisplayColumns append(DisplayColumns columns) {
28          return columns.appendTo(this);
29      }
30  
31      /***
32       * @see uba.db.sql.language.DisplayColumns#appendTo(uba.db.sql.language.DisplayAllColumns)
33       */
34      public DisplayColumns appendTo(DisplayAllColumns columns) {
35          return new DisplayMultipleColumns(columns, this);
36      }
37  
38      /***
39       * @see uba.db.sql.language.DisplayColumns#appendTo(uba.db.sql.language.DisplayMultipleColumns)
40       */
41      public DisplayColumns appendTo(DisplayMultipleColumns columns) {
42          return columns.appendAsOne(this);
43      }
44  
45      /***
46       * @see uba.db.sql.language.DisplayColumns#appendTo(uba.db.sql.language.DisplayOneColumn)
47       */
48      public DisplayColumns appendTo(DisplayOneColumn oneColumn) {
49          return new DisplayMultipleColumns(oneColumn, this);
50      }
51  
52      /***
53       * @see java.lang.Object#equals(java.lang.Object)
54       */
55      public boolean equals(Object obj) {
56          return EqualsBuilder.reflectionEquals(this, obj);
57      }
58  
59      /***
60       * @see java.lang.Object#hashCode()
61       */
62      public int hashCode() {
63          return HashCodeBuilder.reflectionHashCode(this);
64      }
65  
66      /***
67       * @see java.lang.Object#toString()
68       */
69      public String toString() {
70          return expression.toString();
71      }
72  
73      /***
74       * @see uba.db.sql.language.Visitable#accept(uba.db.sql.language.Visitor)
75       */
76      public void accept(Visitor visitor) {
77          visitor.visitDisplayOneColumn(this);
78      }
79  
80      /***
81       * Retorna la expresión que contiene esta columna.
82       */
83      public SingleValue expression() {
84          return expression;
85      }
86  }